package org2.jogo.activities;

import adapters.PerguntasDbAdapter;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import org2.jogo.R;
import org2.jogo.Utils;
import org2.jogo.models.Pergunta;

public class NovaPerguntaActivity extends GameActivity implements AdapterView.OnItemSelectedListener {

	/*
	 * Nessa tela o usuário vai poder cadastrar novas perguntas ao jogo.
	 */

	private int	respostaCorreta	= -1;
	private int	dificuldade		= -1;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Button btnCriar = (Button) findViewById(R.id.btnCriarPergunta);
		btnCriar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				criarPergunta();
			}
		});
		String[] alternativas = new String[] { "Alternativa 1", "Alternativa 2", "Alternativa 3", "Alternativa 4", };
		String[] dificuldades = new String[] { "Fácil", "Normal", "Difícil" };
		ArrayAdapter<String> adapterResposta =
				new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, alternativas);
		ArrayAdapter<String> adapterDificuldade =
			new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, dificuldades);
		adapterResposta.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		adapterDificuldade.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		Spinner spinResposta = (Spinner) findViewById(R.id.spinNovaAltCerta);
		spinResposta.setAdapter(adapterResposta);
		spinResposta.setOnItemSelectedListener(this);
		Spinner spinDificuldade = (Spinner) findViewById(R.id.spinNovaDificuldade);
		spinDificuldade.setAdapter(adapterDificuldade);
		spinDificuldade.setOnItemSelectedListener(this);
	}

	@Override
	protected int getContentView() {
		return R.layout.nova_pergunta;
	}

	@Override
	protected int getMusicaFundo() {
		return 0;
	}

	@Override
	protected String getTitulo() {
		return "Criar nova pergunta";
	}

	private void criarPergunta() {
		String descricao = ((EditText) findViewById(R.id.txtNovaDescricao)).getText().toString();
		String alt1 = ((EditText) findViewById(R.id.txtNovaAlt1)).getText().toString();
		String alt2 = ((EditText) findViewById(R.id.txtNovaAlt2)).getText().toString();
		String alt3 = ((EditText) findViewById(R.id.txtNovaAlt3)).getText().toString();
		String alt4 = ((EditText) findViewById(R.id.txtNovaAlt4)).getText().toString();
		if (descricao.length() > 0 && alt1.length() > 0 && alt2.length() > 0 && alt3.length() > 0 && alt4.length() > 0) {
			if (respostaCorreta >= 0) {
				try {
				String[] respostas = new String[] {alt1, alt2, alt3, alt4};
				Pergunta pergunta = new Pergunta(descricao, respostas, respostaCorreta, dificuldade);
				pergunta.setCustomizada(true);
				PerguntasDbAdapter adapter = PerguntasDbAdapter.getDbAdapter(this);
				adapter.decoraPergunta(pergunta.getContentValues());
				Utils.showToast(this, "Pergunta criada com sucesso!");
				}
				catch (Exception ex) {
					Utils.showToast(this, "Houve um erro e sua pergunta não foi criada.");
				}
				startActivity(new Intent(this, OpcoesActivity.class));
			} else {
				Utils.showToast(this, "Por favor, selecione uma resposta para esta pergunta!");
			}
		} else
			Utils.showToast(this, "Por favor, preencha todos os campos para criar a pergunta");
	}

	public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
		if (parent.getId() == R.id.spinNovaAltCerta)
			respostaCorreta = position;
		else
			dificuldade = position + 1;
	}

	public void onNothingSelected(AdapterView<?> arg0) {
		Utils.showToast(this, "Por favor, selecione uma opção");
	}
}
